//
//  NSObject+Fantasia.h
//  MGJFoundation
//
//

#import <Foundation/Foundation.h>

@interface NSObject (Fantasia)

/**
 * 使用这个属性，可以更清晰、全面地看到一个 object 包含了那些属性
 */
@property (nonatomic, readonly) NSString *fan_description;

- (void)associateValue:(id)value withKey:(void *)key;

- (void)weaklyAssociateValue:(id)value withKey:(void *)key;

- (void)copyAssociateValue:(id)value withKey:(void *)key;

- (id)associatedValueForKey:(void *)key;

- (void)fanObserveNotification:(NSString *)notificationName handler:(void (^)(NSNotification *))handler;

@end

